//package com.hitqz.robot.biz.flow.component.agv;
//
//import com.alibaba.fastjson.JSONObject;
//import com.google.common.collect.Maps;
//import com.hitqz.robot.api.business.model.dto.FlowContextDto;
//import com.hitqz.robot.api.business.model.dto.FlowPatrolPreAndEndTicketsDto;
//import com.hitqz.robot.api.common.entity.Robot;
//import com.hitqz.robot.api.common.entity.TicketsTask;
//import com.hitqz.robot.biz.flow.util.LiteFlowUtil;
//import com.hitqz.robot.biz.service.RobotService;
//import com.yomahub.liteflow.annotation.LiteflowComponent;
//import com.yomahub.liteflow.core.NodeComponent;
//import lombok.AllArgsConstructor;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.http.HttpEntity;
//import org.springframework.http.HttpHeaders;
//import org.springframework.http.MediaType;
//import org.springframework.web.client.RestTemplate;
//
//import java.util.Map;
//import java.util.Optional;
//import java.util.Set;
//import java.util.concurrent.TimeUnit;
//
///**
// * @author xupkun
// * @date 2025/4/17
// */
//@Slf4j
//@LiteflowComponent(value = "YzjDispatchTask", name = "[轮对/轮轴]地牛-托盘替换任务分发")
//@AllArgsConstructor
//public class YzjDispatchTask extends NodeComponent {
//
//    private static final Set<String> SRC_VALUES = Set.of("5235", "5236", "5237");
//
//    private static RestTemplate restTemplate;
//
//    private static RobotService robotService;
//    //private static final Set<String> DES_VALUES = Set.of("5232", "5233", "5234");
//
//    @Override
//    public void process() throws Exception {
//        // 查询缓存架状态
//        LiteFlowUtil.checkInterruptFlag();
//        FlowContextDto dto =  this.getRequestData();
//        TicketsTask task = dto.getTicketsTask();
//        FlowPatrolPreAndEndTicketsDto ticketsDto = JSONObject.parseObject(dto.getTicketsTask()
//                .getParseOrderParams(), FlowPatrolPreAndEndTicketsDto.class);
//        String taskDes =  Optional.ofNullable(ticketsDto.getModalData().get("targetPosName"))
//                .orElse(ticketsDto.getModalData().get("targetPosCode")).toString();
//        String taskSrc = "";
//        while (true) {
//            for (String src : SRC_VALUES) {
//                LiteFlowUtil.checkInterruptFlag();
//                String uri = "http://127.0.0.1:9999/admin/km/agv/goodBufferStatus?name=5235";
//                uri = uri.replace("5235", src);
//                String goodsBufferStatus = restTemplate.getForObject(uri, String.class);
//                JSONObject jsonObject = JSONObject.parseObject(goodsBufferStatus);
//                JSONObject data = jsonObject.getJSONObject("data");
//                if (data.getInteger("storeStatus") == 4) {
//                    taskSrc = data.getString("bindPosName");
//                    log.info("找到是满托盘的情况, 取货地点是:" + taskSrc);
//                    break;
//                }
//            }
//            LiteFlowUtil.checkInterruptFlag();
//            TimeUnit.SECONDS.sleep(5);
//        }
//
//        // 空托盘的放置位置
//        String middleSrc= "";
//        // 查询， 空托盘的放置位置是不是需要中转
//        while (true) {
//            LiteFlowUtil.checkInterruptFlag();
//            for (String src : SRC_VALUES) {
//                String uri = "http://127.0.0.1:9999/admin/km/agv/goodBufferStatus?name=5235";
//                uri = uri.replace("5235", src);
//                String goodsBufferStatus = restTemplate.getForObject(uri, String.class);
//                JSONObject jsonObject = JSONObject.parseObject(goodsBufferStatus);
//                JSONObject data = jsonObject.getJSONObject("data");
//                if (data.getInteger("storeStatus") == 1) {
//                    middleSrc = data.getString("bindPosName");
//                    log.info("找到是空托盘的情况, 放货地点是:" + middleSrc);
//                    break;
//                }
//            }
//            LiteFlowUtil.checkInterruptFlag();
//            TimeUnit.SECONDS.sleep(5);
//        }
//
//        log.info("找到任务转运目标是: 放货终点{}--- 中转点{}--- 取货点{}", taskDes, middleSrc, taskSrc);
//
//        // 添加三个任务
//        //String taskName = "地牛-托盘更换";
//        //String taskNo = taskName + System.currentTimeMillis();
//        //Robot robot = robotService.getDefaultRobot();
//        //Map<String, Object> requestParams = Maps.newHashMap();
//        //requestParams.put("TaskNo", taskNo);
//        //requestParams.put("Priority", 0);
//        //requestParams.put("VehicleNo", robot.getRobotSn());
//        //requestParams.put("FinishAction", 0);
//        //requestParams.put("TaskType", taskName);
//        //requestParams.put("src", sourcePos.getCode());
//        //requestParams.put("pre_src", preSourcePos.get().getCode());
//        //requestParams.put("des", targetPos.getCode());
//        //requestParams.put("pre_des", preTargetPos.get().getCode());
//        //String requestBody = JSONObject.toJSONString(requestParams);
//        //sendDispatch(requestBody, addTask);
//
//
//
//
//
//
//    }
//
//
//    private String sendDispatch(String requestBody, String uri) {
//        try {
//            RestTemplate restTemplate = new RestTemplate();
//            HttpHeaders headers = new HttpHeaders();
//            headers.setContentType(MediaType.APPLICATION_JSON);
//            HttpEntity<String> requestEntity = new HttpEntity<>( requestBody, headers);
//            log.info("请求地址{} 参数: {}", uri
//                    , requestBody);
//            String response = restTemplate.postForObject(uri, requestEntity, String.class);
//            log.info("任务返回接果: " + response);
//            return response;
//        } catch (Exception e) {
//            log.info("请求地址发生异常:" + e.getMessage());
//        }
//        return null;
//    }
//}
